package co.com.mobileandbusiness.alarmas.usuarios.action;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import co.com.mobileandbusiness.alarmas.common.action.BaseAction;
import co.com.mobileandbusiness.alarmas.persistencia.dao.IDAO;
import co.com.mobileandbusiness.alarmas.persistencia.dao.common.SinglentonSpring;
import co.com.mobileandbusiness.alarmas.persistencia.entidades.Cliente;
import co.com.mobileandbusiness.alarmas.util.FacesUtils;

public class AdministrarClientesBean extends BaseAction {

	private Cliente clienteSeleccionado;
	private List<Cliente> listaClientes;
	private List<SelectItem> selectItemsListaClientes;
	private boolean mostrarResultadoConsulta;
	private String idClienteSeleccionado;
	
	
	
	public AdministrarClientesBean(){
		init();
	}
	
	@SuppressWarnings("unchecked")
	private void init() {
		
		IDAO dao = SinglentonSpring.getInstance().getDAO();
		
		List<String> fields = new ArrayList<String>();		
		fields.add("nombre");
		fields.add("idCliente");
		
		this.listaClientes = dao.getProjectedList(Cliente.class,fields,null,false);
		this.selectItemsListaClientes = FacesUtils.getInstance().getSelectItems(this.listaClientes, "getNombre", "getIdCliente");
		this.mostrarResultadoConsulta = false;
		
	}
	
	public String consultar(){
		
		IDAO dao = SinglentonSpring.getInstance().getDAO();
		this.clienteSeleccionado = (Cliente)dao.getById(Cliente.class, idClienteSeleccionado);
		dao.initialize(this.clienteSeleccionado);
		this.mostrarResultadoConsulta = true;
		return "infoCliente";
	}
	
	
	/**
	 * @return the cliente
	 */
	public Cliente getClienteSeleccionado() {
		return clienteSeleccionado;
	}

	/**
	 * @param cliente the cliente to set
	 */
	public void setClienteSeleccionado(Cliente clienteSeleccionado) {
		this.clienteSeleccionado = clienteSeleccionado;
	}

	/**
	 * @return the listaClientes
	 */
	public List<Cliente> getListaClientes() {
		return listaClientes;
	}

	/**
	 * @param listaClientes the listaClientes to set
	 */
	public void setListaClientes(List<Cliente> listaClientes) {
		this.listaClientes = listaClientes;
	}
	/**
	 * @return the mostrarResultadoConsulta
	 */
	public boolean isMostrarResultadoConsulta() {
		return mostrarResultadoConsulta;
	}
	/**
	 * @param mostrarResultadoConsulta the mostrarResultadoConsulta to set
	 */
	public void setMostrarResultadoConsulta(boolean mostrarResultadoConsulta) {
		this.mostrarResultadoConsulta = mostrarResultadoConsulta;
	}

	/**
	 * @return the selectItemsListaClientes
	 */
	public List<SelectItem> getSelectItemsListaClientes() {
		return selectItemsListaClientes;
	}

	/**
	 * @param selectItemsListaClientes the selectItemsListaClientes to set
	 */
	public void setSelectItemsListaClientes(
			List<SelectItem> selectItemsListaClientes) {
		this.selectItemsListaClientes = selectItemsListaClientes;
	}

	/**
	 * @return the idClienteSeleccionado
	 */
	public String getIdClienteSeleccionado() {
		return idClienteSeleccionado;
	}

	/**
	 * @param idClienteSeleccionado the idClienteSeleccionado to set
	 */
	public void setIdClienteSeleccionado(String idClienteSeleccionado) {
		this.idClienteSeleccionado = idClienteSeleccionado;
	}
	
}
